/*!
\copyright  Copyright (c) 2020-2025 Qualcomm Technologies International, Ltd.\n
            All Rights Reserved.\n
            Qualcomm Technologies International, Ltd. Confidential and Proprietary.
\version    
\file       fast_pair_config.h
\brief      Configuration for Fast Pair Module.
*/

#ifndef FAST_PAIR_CONFIG_H_
#define FAST_PAIR_CONFIG_H_

#include <fast_pair.h>

#define FAST_PAIR_CONFIG_ASPK_LEN 32
#define FAST_PAIR_CONFIG_MODEL_ID_LEN 4 /* Model ID read from PS should be of even length. */

/*! \brief Get Fast Pair Model ID
 */
uint32 fastPair_GetModelId(void);


#ifdef FEATURE_FAST_PAIR_OPTION_SUPPORT_BLE_DEVICE
#define SUPPORT_BLE_DEVICE_EXTENSION        FEATURE_FAST_PAIR_OPTION_SUPPORT_BLE_DEVICE
#else
#if (defined(INCLUDE_LE_AUDIO_UNICAST) || defined(INCLUDE_LE_AUDIO_BROADCAST))
#define SUPPORT_BLE_DEVICE_EXTENSION        1
#else
#define SUPPORT_BLE_DEVICE_EXTENSION        0
#endif
#endif

#ifdef FEATURE_FAST_PAIR_OPTION_SUPPORT_BLE_L2CAP_MESSAGE_STREAM
#define SUPPORT_BLE_L2CAP_MESSAGE_STREAM    FEATURE_FAST_PAIR_OPTION_SUPPORT_BLE_L2CAP_MESSAGE_STREAM
#else
#if SUPPORT_BLE_DEVICE_EXTENSION
#define SUPPORT_BLE_L2CAP_MESSAGE_STREAM    1
#else
#define SUPPORT_BLE_L2CAP_MESSAGE_STREAM    0
#endif
#endif

#ifdef FEATURE_FAST_PAIR_OPTION_USE_EXTENDED_ADVERTS
#define USE_EXTENDED_ADVERTS                FEATURE_FAST_PAIR_OPTION_USE_EXTENDED_ADVERTS
#else
#define USE_EXTENDED_ADVERTS                0
#endif

#ifdef FEATURE_FAST_PAIR_OPTION_SPECIFY_TX_POWER
#define SPECIFY_TX_POWER                    FEATURE_FAST_PAIR_OPTION_SPECIFY_TX_POWER
#else
#define SPECIFY_TX_POWER                    1
#endif

#ifdef FEATURE_FAST_PAIR_OPTION_FIND_MY_DEVICE_ENABLE_DULT
#define FIND_MY_DEVICE_ENABLE_DULT          FEATURE_FAST_PAIR_OPTION_FIND_MY_DEVICE_ENABLE_DULT
#else
#define FIND_MY_DEVICE_ENABLE_DULT          0
#endif

/*! \brief Configure the fast pair component.

    \param  config       configuration
 */
void FastPair_SetConfig(fast_pair_config_t * config);

/*! \brief Get the current fast pair component configuration.

    \returns the current fast pair config
 */
fast_pair_config_t * FastPair_GetConfig(void);

#endif /* FAST_PAIR_CONFIG_H_ */
